package com.sdp.flow.dto;

import java.time.LocalDateTime;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdp.core.bizc.annotation.ViewColumn;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TodoTaskView {

	@ViewColumn("a.ID_")
    private String id;

	@ViewColumn("a.REV_")
    private Integer rev;

	@ViewColumn("a.EXECUTION_ID_")
    private String executionId;

	@ViewColumn("a.PROC_INST_ID_")
    private String procInstId;

	@ViewColumn("a.PROC_DEF_ID_")
    private String procDefId;

	@ViewColumn("a.TASK_DEF_ID_")
    private String taskDefId;

	@ViewColumn("a.SCOPE_ID_")
    private String scopeId;

	@ViewColumn("a.SUB_SCOPE_ID_")
    private String subScopeId;

	@ViewColumn("a.SCOPE_TYPE_")
    private String scopeType;

	@ViewColumn("a.SCOPE_DEFINITION_ID_")
    private String scopeDefinitionId;

	@ViewColumn("a.PROPAGATED_STAGE_INST_ID_")
    private String propagatedStageInstId;

	@ViewColumn("a.NAME_")
    private String name;

	@ViewColumn("a.PARENT_TASK_ID_")
    private String parentTaskId;

	@ViewColumn("a.DESCRIPTION_")
    private String description;

	@ViewColumn("a.TASK_DEF_KEY_")
    private String taskDefKey;

	@ViewColumn("a.OWNER_")
    private String owner;

	@ViewColumn("a.ASSIGNEE_")
    private String assignee;

	@ViewColumn("a.DELEGATION_")
    private String delegation;

	@ViewColumn("a.PRIORITY_")
    private Integer priority;

	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ViewColumn("a.CREATE_TIME_")
    private LocalDateTime createTime;

	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ViewColumn("a.DUE_DATE_")
    private LocalDateTime dueDate;

	@ViewColumn("a.CATEGORY_")
    private String category;

	@ViewColumn("a.SUSPENSION_STATE_")
    private Integer suspensionState;

	@ViewColumn("a.TENANT_ID_")
    private String tenantId;

	@ViewColumn("a.FORM_KEY_")
    private String formKey;

	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ViewColumn("a.CLAIM_TIME_")
    private LocalDateTime claimTime;

	@ViewColumn("a.IS_COUNT_ENABLED_")
    private String isCountEnabled;

	@ViewColumn("a.VAR_COUNT_")
    private Integer varCount;

	@ViewColumn("a.ID_LINK_COUNT_")
    private Integer idLinkCount;

	@ViewColumn("a.SUB_TASK_COUNT_")
    private Integer subTaskCount;
	
	//处理人参与方式：participant：直接处理；
	@ViewColumn("b.TYPE_")
	private String type;
	
	@ViewColumn("c.SYSTEM_NO")
	private String systemNo;
	
	@ViewColumn("c.TEMPLATE_NAME")
	private String templateName;
	
	@ViewColumn("c.FORM_PATH")
    private String formPath;
	
	@ViewColumn("c.KEY_ID")
    private String keyId;

    
}
